The man page is somewhat vague about this, but I do think it was a bug
that these options didn't alreay behave that way. The options are
documented to disable imports and exports, which is the same operations
just with a special remote that uses trees.
The real motivation for this is that I'm adding git-annex pull and
git-annex push, and I want these options to turn off the equivilant of
those commands. And git-annex pull will certianly download and push
upload.
Sponsored-by: Nicholas Golder-Manning on Patreon
* reinject: Fix support for operating on multiple pairs of files and keys.
* importfeed: Support -J
* importfeed: Support --json-progress
- * sync: Fix bug that made --no-pull, rather than --no-push prevent
- exporting trees to special remotes.
+ * sync: Fix buggy handling of --no-pull and --no-push when syncing
+ --content. With --no-pull, avoid downloading content, and with
+ --no-push avoid uploading content. This was done before, but
+ inconsistently.
* uninit: Avoid buffering the names of all annexed files in memory.
-- Joey Hess <id@joeyh.name> Sat, 08 Apr 2023 13:57:18 -0400
return (got || not (null putrs))
where
wantget have inhere = allM id
- [ pure (not $ null have)
+ [ pure (maybe True pullOption o)
+ , pure (not $ null have)
, pure (not inhere)
, wantGet True (Just k) af
]
next $ return True
wantput r
+ | pushOption o = Just False = return False
| Remote.readonly r || remoteAnnexReadOnly (Remote.gitconfig r) = return False
| isThirdPartyPopulated r = return False
| otherwise = wantGetBy True (Just k) af (Remote.uuid r)